package models

import (
	"time"

	"gorm.io/gorm"
)

// 永远也不要管表的id，而是表的其他唯一标识字段

// 医嘱表，创建的医嘱应该需要唯一标识，但不是医嘱id
// 医嘱表的唯一标识字段是医嘱编码
type MedicalOrder struct {
	gorm.Model
	MedicalOrderId int `gorm:"primary_key;auto_increment;not null" json:"medical_order_id"` // 医嘱ID
	// 医嘱编码唯一改成unique
	MedicalOrderCode string `gorm:"not null;unique" json:"medical_order_code"` // 医嘱编码
	// 外键关联患者表的ID
	PatientId int `gorm:"not null" json:"patient_id"` // 关联的患者ID
	// 外键关联医生表的ID
	DoctorId int `gorm:"not null" json:"doctor_id"` // 关联的医生ID
	// 外键关联病历表的ID
	MedicalHistoryId     int       `gorm:"not null" json:"medical_history_id"`      // 关联的病历ID
	OrderStatus          string    `gorm:"not null" json:"order_status"`            // 医嘱状态
	OrderDate            time.Time `gorm:"not null" json:"order_date"`              // 医嘱开立日期
	Medications          string    `gorm:"type:text" json:"medications"`            // 药物名称及用法
	LaboratoryTests      string    `gorm:"type:text" json:"laboratory_tests"`       // 实验室检查项目
	ImagingTests         string    `gorm:"type:text" json:"imaging_tests"`          // 影像学检查项目
	Treatments           string    `gorm:"type:text" json:"treatments"`             // 治疗措施（如手术、物理治疗等）
	SpecialInstructions  string    `gorm:"type:text" json:"special_instructions"`   // 特殊医嘱（如饮食、活动限制等）
	FollowUpInstructions string    `gorm:"type:text" json:"follow_up_instructions"` // 复诊建议
}
